<?php
class Producto extends AppModel {

    var $name = 'Producto';
    var $validation=array(
        'codigo'=>array(
            'regla1'=>array(
                'rule'=>'isUnique',
                'message'=>'Ya existe este código',
                'required'=>true,
                'allowEmpty'=>false
            ),
            'regla2'=>array(
                'rule'=>array('alphaNumeric'),
                'message'=>'No utilice símbolos, solo números',
                'required' =>  true,
                'allowEmpty' =>  false
            )
        )
    );
    //The Associations below have been created with all possible keys, those that are not needed can be removed
    var $belongsTo = array(        
        'UnidadMedida' => array(
            'className' => 'UnidadMedida',
            'foreignKey' => 'unidad_medida_id'
        ),        
        'Marca' => array(
            'className' => 'Marca',
            'foreignKey' => 'marca_id'
        ),         
        'ProductoGrupo' => array(
            'className' => 'ProductoGrupo',
            'foreignKey' => 'grupo_id'
        ),
        'ProductoCategoria' => array(
            'className' => 'ProductoCategoria',
            'foreignKey' => 'categoria_id'
        )         
    );  
    
    public function getCodigo($grupo){
    	$producto = $this->find('first',
    			array(
    			'fields'=>array('substring("Producto"."codigo",4,4) AS "Producto__codigo"'),
    			'conditions'=>array(
    				'activo'=>true,
    				'codigo ilike'=>$grupo.'%'
    				),
    			'recursive'=>-1,
    			'order'=>array('Producto.codigo'=>'desc')));
    	
    	if(empty($producto)){
    		return $grupo.'0001';    		
    	} else {
    		$correlativo = (int)$producto['Producto']['codigo'] + 1;
    		return $grupo.str_repeat('0',4-strlen($correlativo)).$correlativo;
    	}
    	return false;
    }
}
?>